<?php

class User_model extends CI_Model {

    public function __construct() {
        $this->load->database();
    }
    
    # Funcion que verifica si un usuario existe en la base de datos, de ser
    # asi retorna true y en la sesion se guarda los datos del usuario 
    public function login($email,$password)
    {
        # Realizamos la consulta con los datos de ese usuario
        $this->db->select('*');
        $this->db->from('usuario');
        $this->db->where('email = ' . "'" . $email . "'");
        $this->db->where('password = ' . "'" . $password . "'");
        $query = $this->db->get();
        
        #Si existe una tupla entonces si existe
        if ($query->num_rows() == 1) {
            $newdata = array(
                'email' => $email,
                'logged_in' => TRUE
            );
            # Agregamos la data a la sesion
            $this->session->set_userdata($newdata);
            return TRUE; 
        }else{
            return FALSE;
        }
    }
    
    
    public function esAdmin($email){
        # Hacemos la consulta y seleccionamos el campo administrador
        $this->db->select('administrador');
        $this->db->from('usuario');
        $this->db->where('email = ' . "'" . $email . "'");
        $query = $this->db->get();
        foreach ($query->result() as $row) {
            
        }
        if ($row->administrador == 'administrador') {
            return TRUE;
        }
        return FALSE;
    }

    public function registroCompleto($email){
        # Hacemos la consulta y seleccionamos el campo registro completo
        $this->db->select('registro_completo');
        $this->db->from('usuario');
        $this->db->where('email = ' . "'" . $email . "'");
        $query = $this->db->get();
        foreach ($query->result() as $row) {
            
        }
        if ($row->registro_completo == '1') {
            return TRUE;
        }
        return FALSE;
    }
    
   public function esHab($email) {
        # Hacemos la consulta y seleccionamos el campo administrador
        $this->db->select('status');
        $this->db->from('usuario');
        $this->db->where('email = ' . "'" . $email . "'");
        $query = $this->db->get();
        foreach ($query->result() as $row) {
            
        }
        if ($row->status == '0') {
            return TRUE;
        }
        return FALSE;
    }
    
    public function existeUsuario($email){
        $this->db->select('*');
        $this->db->from('usuario');
        $this->db->where('email = ' . "'" . $email . "'");
        $query = $this->db->get();
        
        #Si existe una tupla entonces si existe
        if ($query->num_rows() == 1) {
            return TRUE; 
        }else{
            return FALSE;
        }
        
    }
    
    // Funcion que verifica si existe un usuario, si no existe entonces lo crea
    public function agregar($email,$datos)
    {
        if ($this->existeUsuario($email)==FALSE){
            $this->db->insert('usuario', $datos);
            return TRUE;
        }
        return FALSE;        
    }
    
    
    
    // Funcion que modifica los datos de un usuario excepto su email
    public function modificar($email,$pwd,$alias,$nombre,$apellido,$fecha_nacimiento,$dir,$idioma,$registro_completo){
        $this->db->set('password', $pwd);
        $this->db->set('alias', $alias);
        $this->db->set('nombres', $nombre);
        $this->db->set('apellidos', $apellido);
        $this->db->set('fecha_nacimiento', $fecha_nacimiento);
        $this->db->set('direccion', $dir);
        $this->db->set('idioma_sistema', $idioma);
        $this->db->set('registro_completo', $registro_completo);

        $this->db->where('email', $email);
        $this->db->update('usuario');
        
    }
    
    // Funcion que modifica los datos de un usuario excepto su email
    public function modificarPorId($id,$pwd,$alias,$nombre,$apellido,$fecha_nacimiento,$dir,$idioma,$registro_completo){
        $this->db->set('password', $pwd);
        $this->db->set('alias', $alias);
        $this->db->set('nombres', $nombre);
        $this->db->set('apellidos', $apellido);
        $this->db->set('fecha_nacimiento', $fecha_nacimiento);
        $this->db->set('direccion', $dir);
        $this->db->set('idioma_sistema', $idioma);

        $this->db->where('id_usuario', $id);
        $this->db->update('usuario');
        
    }
    
        public function inhabilitar($id) {

        $this->db->set('status', -1);
        $this->db->where('id_usuario', $id);
        $this->db->update('usuario');
    }

    public function habilitar($id) {

        $this->db->set('status', 0);
        $this->db->where('id_usuario', $id);
        $this->db->update('usuario');
    }

    public function obtenerUsuario($id) {

        $this->db->select('*');
        $this->db->from('usuario');
        $this->db->where('id_usuario', $id);
        $query = $this->db->get();

        $res = $query->result_array();
        return $res;
    }
}